# JZ12 数值的整数次方
#
# 描述
# 给定一个double类型的浮点数base和int类型的整数exponent。
# 求base的exponent次方。
# 保证base和exponent不同时为0。
# 不得使用库函数，同时不需要考虑大数问题，也不用考虑小数点后面0的位数。
# 示例1
# 输入：
# 2.00000,3
# 返回值：
# 8.00000
# 示例2
# 输入：
# 2.10000,3
# 返回值：
# 9.26100
# 示例3
# 输入：
# 2.00000,-2
# 返回值：
# 0.25000
# 说明：
# 2的-2次方等于1/4=0.25

# 核心代码模式
# -*- coding:utf-8 -*-
class Solution:
    def Power(self, base, exponent):
        # 方法1暴力法
        # 分三种情况exponent<=>0讨论
        # exponent个base相乘/除
        res =1
        if exponent>0:
            for i in range(0,exponent):
                res*=base
        elif exponent==0:
            res =1
        else:
            #exponent 负数前加-变正
            for i in range(0,-exponent):
                res/=base
                # 或者 res*=1/base
        return res
    #时间复杂度O(N)：循环计算只需要根据 exponent 的大小
    #空间复杂度O(1)：需要常数级空间
        #方法2递归 时间复杂度大